using System;
using System.Collections.Generic;
using System.Text;

namespace BetaIto.ChaosDAV
{
    public class CfsContext
    {
        public const string OPTION_USER = "USER";
        public const string OPTION_PASSWORD = "PASSWORD";
        public const string OPTION_AUTHENTICATION = "AUTHENTICATION";
        public const string OPTION_SSL = "SSL";
        public delegate void CopyNotifyDelegate(CfsContext context, string sourceUrl, string destUrl, int copiedSize, int totalSize);
        protected CopyNotifyDelegate _copyNotify;
        protected Uri _baseUrl;
        protected bool _connected;

        public Uri BaseUri
        {
            get { return _baseUrl; }
            set { _baseUrl = value; }
        }

        public CopyNotifyDelegate CopyNotify
        {
            get { return _copyNotify; }
            set { _copyNotify = value; }
        }
	
        public bool Connected
        {
            get { return _connected; }
            set { _connected = value; }
        }

        public virtual void OpenUrl(Uri url, Dictionary<string, string> openParameter)
        {
            throw new NotSupportedException();
        }

        public virtual void Close()
        {
            throw new NotSupportedException();
        }

        public virtual void GetFolderItem(string folder, out List<CfsPath> outPath)
        {
            throw new NotSupportedException();
        }

        public virtual void CopyToRemote(string localPath, string remotePath)
        {
            throw new NotSupportedException();
        }

        public virtual void CopyFromRemote(string remotePath, string localPath)
        {
            throw new NotSupportedException();
        }

        public virtual void CreateFolder(string remotePath)
        {
            throw new NotSupportedException();
        }

        public virtual void DeleteFile(string remotePath)
        {
            throw new NotSupportedException();
        }

        public virtual void MoveFile(string oldPath, string newPath)
        {
            throw new NotSupportedException();
        }
    }
}
